package com.ruoyi.shop.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户信息，保存用户信息。对象 shop_user
 * 
 * @author ruoyi
 * @date 2021-09-14
 */
public class ShopUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private Long id;

    /** 登录名 */
    @Excel(name = "登录名")
    private String username;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 实名 */
    @Excel(name = "实名")
    private String realname;

    /** 身份 */
    @Excel(name = "身份")
    private String identity;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** 盐 */
    @Excel(name = "盐")
    private String salt;

    /** 匿名ID */
    @Excel(name = "匿名ID")
    private String anonym;

    /** 邮件 */
    @Excel(name = "邮件")
    private String email;

    /** 邮箱状态（1是 0否认证等） */
    @Excel(name = "邮箱状态")
    private Integer emailStatus;

    /** 手机电话 */
    @Excel(name = "手机电话")
    private String mobile;

    /** 手机状态（1是 0否认证等） */
    @Excel(name = "手机状态")
    private Integer mobileStatus;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 签名 */
    @Excel(name = "签名")
    private String signature;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 头像 */
    @Excel(name = "头像")
    private String avatar;

    /** 证件类型：身份证 护照 军官证等 */
    @Excel(name = "证件类型", readConverterExp = "1=身份证,2=护照,3=军官证")
    private String idcardtype;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String idcard;

    /** 状态 1有效 0停用*/
    @Excel(name = "状态")
    private Integer status;

    /** 用户来源（可能来之oauth第三方） */
    @Excel(name = "用户来源")
    private String createSource;

    /** 最后的登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后的登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date logged;

    /** 激活时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activated;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }
    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getNickname() 
    {
        return nickname;
    }
    public void setRealname(String realname) 
    {
        this.realname = realname;
    }

    public String getRealname() 
    {
        return realname;
    }
    public void setIdentity(String identity) 
    {
        this.identity = identity;
    }

    public String getIdentity() 
    {
        return identity;
    }
    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }
    public void setSalt(String salt) 
    {
        this.salt = salt;
    }

    public String getSalt() 
    {
        return salt;
    }
    public void setAnonym(String anonym) 
    {
        this.anonym = anonym;
    }

    public String getAnonym() 
    {
        return anonym;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setEmailStatus(Integer emailStatus)
    {
        this.emailStatus = emailStatus;
    }

    public Integer getEmailStatus()
    {
        return emailStatus;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setMobileStatus(Integer mobileStatus)
    {
        this.mobileStatus = mobileStatus;
    }

    public Integer getMobileStatus()
    {
        return mobileStatus;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setSignature(String signature) 
    {
        this.signature = signature;
    }

    public String getSignature() 
    {
        return signature;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }
    public void setIdcardtype(String idcardtype) 
    {
        this.idcardtype = idcardtype;
    }

    public String getIdcardtype() 
    {
        return idcardtype;
    }
    public void setIdcard(String idcard) 
    {
        this.idcard = idcard;
    }

    public String getIdcard() 
    {
        return idcard;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setCreateSource(String createSource) 
    {
        this.createSource = createSource;
    }

    public String getCreateSource() 
    {
        return createSource;
    }
    public void setLogged(Date logged) 
    {
        this.logged = logged;
    }

    public Date getLogged() 
    {
        return logged;
    }
    public void setActivated(Date activated) 
    {
        this.activated = activated;
    }

    public Date getActivated() 
    {
        return activated;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("username", getUsername())
            .append("nickname", getNickname())
            .append("realname", getRealname())
            .append("identity", getIdentity())
            .append("password", getPassword())
            .append("salt", getSalt())
            .append("anonym", getAnonym())
            .append("email", getEmail())
            .append("emailStatus", getEmailStatus())
            .append("mobile", getMobile())
            .append("mobileStatus", getMobileStatus())
            .append("gender", getGender())
            .append("signature", getSignature())
            .append("birthday", getBirthday())
            .append("avatar", getAvatar())
            .append("idcardtype", getIdcardtype())
            .append("idcard", getIdcard())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("createSource", getCreateSource())
            .append("logged", getLogged())
            .append("activated", getActivated())
            .toString();
    }
}
